#ifndef _csFileArchive_h_
#define _csFileArchive_h_

/********************************************************************
	created:	2009/11/06
	created:	6:11:2009   18:12
	filename: 	e:\csEngine\csCoreLib\src\io\csFileArchive.h
	file path:	e:\csEngine\csCoreLib\src\io
	file base:	csFileArchive
	file ext:	h
	author:		dongchengok
	
	purpose:	file system archive
*********************************************************************/
#include "csType.h"
#include "csIArchive.h"
//------------------------------------------------------------------------
class csFileArchive : public csIArchive
{
	friend class csArchiveSystem;
public:
	//override
	virtual csArray<csString>	listArchive() const;
	virtual csArray<csString>	listDictionaryArchive() const;
	virtual csArray<csString>	listFileArchive() const;
	virtual csIArchive*			findArchive(const csString& path) const;
	virtual csIArchive*			findOrCreateArchive(const csString& path);
	virtual csStream*			open(const csString& path, csEStreamAccessType type);
	virtual void				save(const csStream& path, csStream& stream);

protected:
	csFileArchive(const csString& path);
	virtual ~csFileArchive();

protected:
	csString					m_path;
};
#endif // _csFileArchive_h_